package raf;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;

/**
 * 简易记事本工具
 * 程序启动后要求用户输入一个文件名,然后对该文件进行写操作.
 * 之后用户输入的[每一行]字符串都写入到该文件中.写入文件的数据不用考虑换行问题.
 * 当用户单独输入"exit"时程序退出.
 */
public class Note {
    public static void main(String[] args) throws IOException {
        /*
            1:首先获取用输入的文件名(字符串)
            2:利用该文件名创建RandomAccessFile就可以对该文件操作了
            3:循环进行下面的工作
              3.1:用户输入的一行字符串
              3.2:判断是否为exit,如果是则应当终止循环.
              3.3:如果不是exit,将该字符串转换为一组字节
              3.4:将转换的字节写入到文件中
            4:关闭RAF,程序结束.
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入文件名:");
        String fileName = scanner.nextLine();
        RandomAccessFile raf = new RandomAccessFile(fileName,"rw");

        System.out.println("请开始输入内容,当单独输入exit时退出.");
        while(true){
            String line = scanner.nextLine();
            //当字符串字面量equals一个变量时,要用下面的方式判断,避免空指针的发生
            if("exit".equals(line)){//line是null时,返回false.反过来写就会空指针!
                break;
            }
            byte[] data = line.getBytes("UTF-8");
            raf.write(data);
        }
        System.out.println("再见!");
        raf.close();
    }
}




